Current demands for communications speed and capacity of modern data networks have created a need for superior performance network architectures that are highly scalable and can effectively handle large amounts of multicast and unicast traffic. These networks are expected to support multimedia applications, and to be capable of dynamic reconfiguration, so as to guarantee a predetermined amount of bandwidth for an agreed-for quality of service (QoS). Emerging services such as integrated voice, video and data applications are increasing the need for the network providers to guarantee a certain variable QoS to each user, based on the user's particular needs at a particular time. This requirement can only be achieved by incrementally integrating into the network new hardware and software developments designed to address specific problems arising as the network grows and the customer demand for new services evolves.
The ever-increasing variety of communications applications has created a need for node architectures that use a wide selection of line and switch board designs that enable flexible and high performance digital, analog or hybrid switching systems. Problems arise where a receiving port cannot assimilate information as fast as it is delivered, or where the priority of the traffic varies. If the amount of data accumulated at the cross-point in a switch or a router exceeds capacity of the data storage, data is discarded, thus forcing the destination port to request data re-transmission. A solution for handling this congestion problem is to use a “brute-force” approach by providing sufficient data storage at each possible cross-point. However, this solution is rather expensive and necessitates additional real-estate capacity on the boards that make-up the network switches and/or routers.
It has also become common to pre-allocate receiver buffer credits to data sources and notify the corresponding sender how much data can be sent. Upon detection of congestion, either at an egress port, or within a node, the receiver withholds buffer credits, forcing the corresponding sender to slow down the launching of packets or to stop transmission altogether. This process is known as “backpressure” congestion control. In general, a backpressure mechanism provides communication between egress and ingress line cards of a switch/router in an attempt to minimize data loss, head-of-line blocking and delay. Backpressure congestion control is achieved by efficiently managing the congestion levels at the switch fabric and egress line cards, and by timely propagating this information to the ingress line cards. This communication is usually carried through the switch fabric card (in-band).
In-band backpressure mechanisms assume that all elements of the backpressure path can support it. However, many current switch fabric implementations do not support any kind of in-band backpressure mechanism. In these cases, when there is a need to upgrade the switch/router in order to implement new applications with QoS guarantees, an alternative solution which can provide the same capabilities needs to be used, rather than replacing the entire switch/router.